home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / IO Examples / Turing / tm.dcl < prev    next >
Encoding:
Modula Definition  |  1996-12-11  |  944 b   |  39 lines  |  [TEXT/3PRM]

  1. definition module tm
  2.  
  3. from StdString import String
  4.  
  5. ::    TmState
  6.     =    {    turing        :: !Turing
  7.         ,    transition    :: !TrNr
  8.         ,    command        :: !Comm
  9.         }
  10. ::    Turing
  11.     =    {    transitions    :: ![Transition]
  12.         ,    tape        :: !Tape
  13.         ,    state        :: !State
  14.         }
  15. ::    Transition
  16.     =    {    start        :: !State
  17.         ,    sigma        :: !Head
  18.         ,    end            :: !State
  19.         ,    move        :: !Char
  20.         }
  21. ::    Tape
  22.     =    {    content        :: !String
  23.         ,    head        :: !Int
  24.         }
  25. ::    State    :== String
  26. ::    Head    :== Char
  27. ::    TrNr    :== Int
  28. ::    Comm    =    Erase | None | MoveR1 | MoveR | MoveL | Halt | ErrorL | ErrorT
  29.             |    Write Char
  30.  
  31. Step                :: !TmState                            -> TmState
  32. CellContents        :: !Int !Tape                        -> Char
  33. ChangeCellContents    :: !Int !Char !Tape                    -> Tape
  34. MoveHead            :: !Int !Tape                        -> Tape
  35. GetTransition        :: Int                ![Transition]    -> Transition
  36. ChangeTransition    :: Int Transition    ![Transition]    -> [Transition]
  37. RemoveTransition    :: Int                ![Transition]    -> [Transition]
  38. NrOfTransitions        ::                    ![Transition]    -> Int
  39. NrOfCells            :: !String                            -> Int